This invention especially relates to performing range lookup operations using associative memory devices, especially in communications and computer systems that employ content-addressable memories; and more particularly, the invention relates to allocating and using range identifiers as input values to content-addressable memories.
The communications industry is rapidly changing to adjust to emerging technologies and ever increasing customer demand. This customer demand for new applications and increased performance of existing applications is driving communications network and system providers to employ networks and systems having greater speed and capacity (e.g., greater bandwidth). In trying to achieve these goals, a common approach taken by many communications providers is to use packet switching technology. Increasingly, public and private communications networks are being built and expanded using various packet technologies, such as Internet Protocol (IP).
A network device, such as a switch or router, typically receives, processes, and forwards or discards a packet based on one or more criteria, including the type of protocol used by the packet, addresses of the packet (e.g., source, destination, group), and type or quality of service requested. Additionally, one or more security operations are typically performed on each packet. But before these operations can be performed, a packet classification operation must typically be performed on the packet.
Packet classification as required for access control lists (ACLs) and forwarding decisions is a demanding part of switch and router design. This packet classification of a received packet is increasingly becoming more difficult due to ever increasing packet rates and number of packet classifications. For example, ACLs require matching packets on a subset of fields of the packet flow label, with the semantics of a sequential search through the ACL rules. IP forwarding requires a longest prefix match.
One known approach uses binary and/or ternary content-addressable memories to perform packet classification. Ternary content-addressable memories allow the use of wildcards in performing their matching, and thus are more flexible than binary content-addressable memories. These content-addressable memories are expensive in terms of power consumption and space, and are limited in the size of an input word on which a lookup operation is performed as well as the number of entries (e.g., 72, 144, etc.) which can be matched.
Various applications that use packet classification, such as Security Access Control, Quality of Service etc., may use arbitrary ranges of values (such as port numbers or packet length) as one of the classification criteria. For example, a certain operation may be performed on packets have a port range between 80 and 1024. It would be desirable to have a single or limited number of entries in a content-addressable memory than for an entry of each port (e.g., 80, 81, 82, . . . 1024).
One previous known attempt produces a resultant bitmap identifying to which of multiple ranges a certain value resides. Such a device is preprogrammed with a set of ranges and generates an bitmap output with the number of bits being as large as the number of range intervals, which may consume a large number of bits in the content-addressable memories. Needed are new methods and apparatus for performing range operations in relation to content-addressable memories.
Systems and methods are disclosed for allocating and using range identifiers as input values to content-addressable memories. In one embodiment, each of multiple non-overlapping intervals are identified with one of multiple unique identifiers. An indication of a mapping between the multiple non-overlapping intervals and the multiple unique identifiers is maintained. A particular unique identifier is determined from said multiple unique identifiers based on a value and said multiple non-overlapping intervals. A lookup operation is performed on an associative memory using the particular unique identifier to generate a result.